package com.irdstudio.apicenter.gateway.comm.format;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

/**
 * 格式化：实现case when
 * 	        参数传入三个(支持使用变量)：
 * 		       第一个为要比较的值
 * 		       第二个为成对的匹配值
 * 		       第三个为，不匹配成功下的值
 * 	        例 ：
 * 		  [ec],null:成功|fail:用户名或密码错误!,用户名或密码错误!
 * @author zs.ligm
 * @version 1.0
 * @date 2015-08-05
 */
@Component(value="TDFormatCase")
public class TDFormatCase implements ITDFormat {

	@Override
	public String format(String srcValue, String param) {
		String[] params = param.split(",");
		String caseValue = "";
		if (params.length > 0 && params.length == 3) {
			String[] cases = params[1].split("\\|");
			if (cases.length > 0) {
				for (int i = 0; i < cases.length; i++) {
					if (params[0].equals(cases[i].split(":")[0])) {
						caseValue = cases[i].split(":")[1];
					}
				}
				if (StringUtils.isEmpty(caseValue)) {
					return params[2];
				} else {
					return caseValue;
				}
			} else {
				return params[2];
			}

		} else {
			return "交易数据格式参数配置错误!";
		}
	}
}
